package com.winsdom.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.winsdom.domain.BuildingMessage;
import com.winsdom.domain.PropertyInfoMessage;
import com.winsdom.domain.dto.AddFeeDTO;
import com.winsdom.domain.dto.PropertyInfoDTO;
import com.winsdom.domain.vo.FormulaPriceVO;
import com.winsdom.domain.po.MessagePO;
import com.winsdom.domain.vo.PropertyInfoFeeVO;
import com.winsdom.dto.CategoryTreeNodes;
import com.winsdom.entity.Building;
import com.winsdom.entity.Expenditure;

import java.util.List;

/**
 * 项目管理服务类
 */
public interface ProjectManagementService {
    List<CategoryTreeNodes> getOrganizationTree();

    BuildingMessage getBuildingMessage(Long id);

    PropertyInfoMessage getPropertyInfoMessage(Long id);

    void updateBuilding(Building building);

    void updateStatus(Long id, Integer status);

    void updatePropertyInfo(PropertyInfoDTO propertyInfo);

    PropertyInfoFeeVO getPropertyInfoFee(Long id);

    List<Expenditure> getexpenditureList();

    FormulaPriceVO getFormulaPriceList(Long expenditureId);

    void add(AddFeeDTO addFeeDTO) throws JsonProcessingException;

    void delete(Integer billingAssociationId);

    MessagePO getMessage(Long id);

    void updateMessage(MessagePO messagePO);
}
